# manage.py
import os
from flask import Flask
from app import create_app  # 确保 create_app 能正确返回 Flask 实例
# from models.model import create_tables  # 确保模型导入无错误

# 1. 初始化 Flask 应用（必须在命令注册前执行）
app = create_app(os.getenv('FLASK_CONFIG') or 'default')

# 2. 关键：注册 CLI 命令（必须在 app 初始化后）
# @app.cli.command("create-tables")  # 命令名：create-tables
# def cli_create_tables():
#     """创建所有数据库表"""
#     create_tables()
#     print("✅ 数据库表创建成功！")

# 3. 其他命令（可选，保持原有功能）
@app.cli.command("runserver")
def cli_runserver():
    """启动开发服务器"""
    app.run(host="0.0.0.0", port=5000, debug=True)

@app.cli.command("test")
def cli_test():
    """运行测试"""
    import unittest
    tests = unittest.TestLoader().discover('tests')
    unittest.TextTestRunner(verbosity=2).run(tests)

# 4. 若直接运行 manage.py，提示使用 Flask CLI
if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000, debug=True)
    # print("请使用 Flask CLI 命令：")
    # print("flask create-tables  # 创建表")
    # print("flask runserver      # 启动服务器")
